package com.ruoyi.system.service.King;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.KingTemporary.*;
import com.ruoyi.system.domain.KingZjRk;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.util.ResultUtil;
import org.json.JSONArray;

import java.util.List;
import java.util.Map;

/**
 * 参数配置 服务层
 * 
 * @author ruoyi
 */
public interface IKingCanService
{
    /**
     * 查询金蝶仓库内码
     *
     */
    public List<String> getAllCang();
    /**
     * 查询金蝶人员
     *
     */
    public List<String> getAllUser();
    /**
     * 查询金蝶物料
     *
     */
    public List<KingWu> getAllWu();
    /**
     * 查询金蝶计量单位
     *
     */
    public List<String> getAllUnit();
    /**
     * 查询金蝶员工
     *
     */
    public List<Map<String, String>> getAllStaff();
    /**
     * 查询员工的其他入库单
     *
     */
    public List<StkMisc> userIdToStkmiscList(String userId);
    /**
     * 其它入库单内码查询明细
     *
     */
    public List<StkMiscKids> idToStkmisChildList(String fId);


    /**
     * 其它出库单内码查询明细
     *
     */
    public List<StkMiscKids> idToStkmisChuChildList(String fId);

    public List<KingZjRk> getUserStk(List<StkMisc> list) throws Exception;

    /**
     * 机构内码查询入库类型
     *
     */
    public List<Map<String, String>> getRukuLei(String fId);
    /**
     * 机构内码查询物料
     *
     */
    public String fIdToWuLiao(String fId);
    /**
     * 查询库存状态
     *
     */
    public List<Map<String, String>> getKuCuState();
    /**
     * 查询种苗类型
     *
     */
    public List<Map<String, String>> getZhongList();
    /**
     * 将前端传来的其他入库信息加工成接口需要json数据
     *
     */
    public String getSubParam(JSONObject jsonObject);

    /**
     * 将前端传来的其他入库信息加工成接口需要json数据
     *
     */
    public String getSubChuParam(JSONObject jsonObject);

    /**
     * 查询物料是否启用产品形态（0不启用1启用）
     *
     */
    public String selectWuliaoCp(String fCode);

    /**
     * 组合前端其他入库单排列
     *
     */
    public  List<Map<String, Object>> getQitaRuArry(List<KingZjRk> list);

    public String getSubmitParm(String fCode);

    public List<Map<String, String>> getCellDetail(String fId);

    /**
     * 查询员工的其他出库单
     *
     */
    public List<StkMisc> useridToSTKchuList(String userId);

    public List<KingZjRk> getUserStkChu(List<StkMisc> list) throws Exception;

    public String fIdToWuLiaoKuCun(String fId);

    /**
     * 查询物料库存仓库信息（1，组织机构内码 2.物料code）
     *
     */
    public String getKuCunCanList(String fId,String fCode);

    /**
     * 查询物料库存批号
     *
     */
    public String getFloatNumber(FloatNumber floatNumber);

    /**
     * 查询物料库存数量
     *
     */
    public Integer getKuCunNum(FloatNumber floatNumber);

    public List<StkMiscKids> idToExamBillChildList(String fId);

    /**
     * 查询用户待审批，已审批，已发起列表
     *
     */
    public List<Map<String, Object>> idToExamListALL(KingCurrency kingCurrency);

    /**
     * 工作流审核参数组合
     *
     */
    public String getExanParm(KingCurrency kingCurrency);

    public Map<String, Object> getExanBillTypeList(String userId);

    /**
     * 获取金蝶仓库和仓位更新到本地数据库
     *
     */
    public void getAllcode() throws Exception;

    /**
     * 获取金蝶物料更新到本地数据库
     *
     */
    public void getWu() throws Exception;

    public void getOrgan() throws Exception;

    List<Map<String, String>> getTransTypeList(String fId);

    /**
     * 获取机构调拨组织机构列表
     *
     */
    List<Map<String, String>> getTransOrgan();

    /**
     * 组合直接调拨单提交数据
     *
     */
    public String getTransParam(JSONObject jsonObject);

    /**
     * 组合前端直接调拨单排列
     *
     */
    public List<Map<String, Object>> getTransRuArry(String fId);

    /**
     * 检查app版本是否是最新
     *
     */
    public Map<String, String> getAppVersion(String fId);

    /**
     * 查询机构物料
     *
     */
    public List<Map<String, String>> getWuliao(String fId);

    /**
     * 查询机构库存物料
     *
     */
    public List<Map<String, String>> getKuCunWuliao(String fId);

    public Integer getExamNum(String fId);

    public void delRedisKey();




}
